#ifndef SYSINFOWINDOWSIMPL_H
#define SYSINFOWINDOWSIMPL_H

#include "sysinfo.h"

#include <QtGlobal>
#include <QVector>

typedef struct _FILETIME FILETIME;

class SysInfoWindowsImpl : public SysInfo
{
public:
    SysInfoWindowsImpl();

    // SysInfo interface
public:
    void init() override;
    double average_cpu_load() override;
    double memory_used() override;

private:
    QVector<qulonglong> cpu_raw_data();
    qulonglong convert_file_time(const FILETIME& file_time);

private:
    QVector<qulonglong> m_cpu_load_last_value;
};

#endif // SYSINFOWINDOWSIMPL_H
